package com.itheima.d06_junit_assert;

import org.junit.Assert;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
 * 目标：了解单元测试中的断言机制
 * 断言：测试方法执行过程中，判断结果是否符合预期，如果不符合则抛出异常，测试方法停止执行。
 * 使用：Assert
 */
public class StringUtilsTest {

    /**
     * 测试用例1：输入正常的字符串"zhangsan"
     * 预测结果：翻转后的字符串"nasgnahz"
     */
    @Test
    public void testReverseWithNormalString() {
        //执行待测试的方法
        String rs = StringUtils.reverse("zhangsan");
        System.out.println(rs);

        //判断结果是否符合预期
        String expected = "nasgnahz";
        Assert.assertEquals("本轮测试失败，正常数据测试失败，业务逻辑存在问题，请检查",expected, rs);
    }

    /**
     * 测试用例2：输入正常的字符串""
     * 预测结果：翻转后的字符串""
     */
    @Test
    public void testReverseWithEmptyString() {
        String rs = StringUtils.reverse("");
        System.out.println(rs);
    }

    /**
     * 测试用例3：输入正常的字符串null
     * 预测结果：注意：参数为nul
     */
    @Test
    public void testReverseWithNullString() {
        String rs = StringUtils.reverse(null);
        System.out.println(rs);
    }
}
